『戲法人人會變,巧妙各有不同』。很多人對敏捷的誤解就是『敏捷就是 Scrum』,就像有人談論武俠小說的武功門派,說『天下武功就是少林派武功』一樣有趣。沒有一種武功是天下無敵,因為一物剋一物,每一種五工都有其優勢,也同樣有其劣勢。『敏捷方法』也是,不同情境可能就有適合的『招式』,當我們知道各個『敏捷武功』的優缺點時,才能在適當的時機選擇最佳方案。
在周星馳電影功夫中有一句話說:『天下武功,無堅不破,唯快不破!』,敏捷就是一種『快』的武功,它的快不是做的快,而是反應快,面對不確定的市場,唯有反應比對手快才有存活的機會。
其實『敏捷』(Agile)一詞是在 2001 年『敏捷宣言』的聚會中才首次被提出來,但屬於『敏捷』的方法卻早在更早之前就有。下面我大概對幾個常見的敏捷方法簡介一下,之後有機會再一一說明。
Scrum 方法
在敏捷方法中,最著名的莫過於是『Scrum』,Scrum 是英式橄欖球(Rugby)運動中列陣爭球的動作。以下是參考 Wiki 整理。
看板方法(Kanban)
『看板』(Kanban)是一種生產管理系統,由 1940 年代的豐田(Toyota)汽車公司發明。『看板』在日文指的『視覺化卡片』或『信號卡』的意思。在豐田生產系統(Toyota Production System; TPS)中用於管理生產流程的任務板稱為『看板』(Kanban Board)。TPS 又稱為是一種『即時化管理機制』(Just-In-Time),透過看板即時呈現現場狀態,幫助企業持續改進生產流程,提高生產效率、品質與反應速度。
2005 年『大衛・安德森』(David J. Anderson)首次在軟體開發上使用了『看板』,2007 年『看板方法』(Kanban method)正式被命名。因此,『大衛・安德森』又被稱為『看板之父』。
看板有六大實踐:
極限編程(eXtreme Programming; XP)
1996 年由 Kent Beck 所提出,雖然在 Kent Beck 當時採用的 C3 專案上並沒有成功,但是其中很多概念及工程實踐卻深深的影響之後的『敏捷開發』,比如說『結隊編程』(Pair Programming)、測試驅動開發(Test-Driven Development)、單元測試(Unit Testing)、持續整合(Continuous Integration)、小規模發布(Small Release)、重構(Refactoring)。
極限編程的四大價值為:溝通(Communication )、簡單(Simplicity)、 回饋(Feedback)、勇氣(Courage)與尊重(Respect)。
精益方法(Lean)
2003 年 Mary Poppendieck 與 Tom Poppendieck 提出了『精益軟體開發』(Lean Software Development)的想法。簡單來說,精益軟體開發的七大原則分別為:
原文請參考:【文思不藏私】 敏捷幼幼班~敏捷招式有多少